package com.cnap.model.schedule.engine;

import com.cnap.model.schedule.engine.alg.AccountName;

import java.util.List;

/**
 * 算法引擎-计算部署请求2.0
 *
 * @author xc
 **/
public class DeployPolicyRequestV2 {
    // 微服务id
    private String svcId;
    // k8s中的微服务名称
    private String svcName;
    // userName
    private String userName;
    // yaml
    private String yaml;
    // 策略
    private List<DeployPolicyConfigV2> deployPolicyConfigs;

    private int batchSize;
    /**
     * 计算类型，CPU/GPU类型部署
     */
    private String calculateType;
    /**
     * 部署云商类型，public公有云/private私有云
     */
    private String commerceType;
    /**
     * 成本价格类型，common为通用价格，agency为代理价格
     */
    private String costType;

    /**
     * 区域信息
     */
    private String regionLocation;

    /**
     * get
     *
     * @return RegionLocation
     */
    public String getRegionLocation() {
        return regionLocation;
    }

    /**
     * set
     *
     * @param regionLocation regionLocation
     */
    public void setRegionLocation(String regionLocation) {
        this.regionLocation = regionLocation;
    }

    /**
     * 云账户信息
     */
    private List<AccountName> accountNames;

    /**
     * get
     *
     * @return AccountNames
     */
    public List<AccountName> getAccountNames() {
        return accountNames;
    }

    /**
     * set
     *
     * @param accountNames accountNames
     */
    public void setAccountNames(List<AccountName> accountNames) {
        this.accountNames = accountNames;
    }

    /**
     * get
     *
     * @return BatchSize
     */
    public int getBatchSize() {
        return batchSize;
    }

    /**
     * set
     *
     * @param batchSize batchSize
     */
    public void setBatchSize(int batchSize) {
        this.batchSize = batchSize;
    }

    /**
     * get
     *
     * @return CalculateType
     */
    public String getCalculateType() {
        return calculateType;
    }

    /**
     * set
     *
     * @param calculateType calculateType
     */
    public void setCalculateType(String calculateType) {
        this.calculateType = calculateType;
    }

    /**
     * get
     *
     * @return CommerceType
     */
    public String getCommerceType() {
        return commerceType;
    }

    /**
     * set
     *
     * @param commerceType commerceType
     */
    public void setCommerceType(String commerceType) {
        this.commerceType = commerceType;
    }

    /**
     * get
     *
     * @return CostType
     */
    public String getCostType() {
        return costType;
    }

    /**
     * set
     *
     * @param costType costType
     */
    public void setCostType(String costType) {
        this.costType = costType;
    }

    /**
     * get
     *
     * @return SvcId
     */
    public String getSvcId() {
        return svcId;
    }

    /**
     * set
     *
     * @param svcId svcId
     */
    public void setSvcId(String svcId) {
        this.svcId = svcId;
    }

    /**
     * get
     *
     * @return SvcName
     */
    public String getSvcName() {
        return svcName;
    }

    /**
     * set
     *
     * @param svcName svcName
     */
    public void setSvcName(String svcName) {
        this.svcName = svcName;
    }

    /**
     * get
     *
     * @return UserName
     */
    public String getUserName() {
        return userName;
    }

    /**
     * set
     *
     * @param userName userName
     */
    public void setUserName(String userName) {
        this.userName = userName;
    }

    /**
     * get
     *
     * @return Yaml
     */
    public String getYaml() {
        return yaml;
    }

    /**
     * set
     *
     * @param yaml yaml
     */
    public void setYaml(String yaml) {
        this.yaml = yaml;
    }

    /**
     * get
     *
     * @return DeployPolicyConfigs
     */
    public List<DeployPolicyConfigV2> getDeployPolicyConfigs() {
        return deployPolicyConfigs;
    }

    /**
     * set
     *
     * @param deployPolicyConfigs deployPolicyConfigs
     */
    public void setDeployPolicyConfigs(List<DeployPolicyConfigV2> deployPolicyConfigs) {
        this.deployPolicyConfigs = deployPolicyConfigs;
    }
}
